
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>


    <script>
        // 面向对象
        // 相遇
        // 构造函数
        // function App (){// 函数作用域
        //     // 添加属性
        //     this.distance = 6000;
        //     this.user1 = {name:"xiaoming",speed:60};
        //     this.user2 = {name:"xiaohong",speed:40};
        //     // this.xiaoming_speed = 60;
        //     // this.xiaohong_speed = 40;
        // }
        // // 原型对象
        // App.prototype.walk =  function() {
        //     // 返回计算的结果
        //     return this.distance / (this.user1.speed + this.user2.speed);
        // }

        // // 实例对象
        // var a1 = new App();

        // // 调用方法返回相遇的时间
        // var res = a1.walk();

        // // 打印结果
        // console.log("两人相遇花了约"+res+"分钟");


        // 面向对象对有经验的开发者而言,思路同样比较清晰
        // 减少全局变量,避免变量的污染
        // 在原型上添加方法,还能节省内存空间

        function App_1 (distance ) {
            this.distance = distance || 3000;
            this.user1 = {name:"小红" , speed_1 : 60 || speed_1};
            this.user2 = {name:"小铭", speed_2 : 40 || speed_2};
        }

        App_1.prototype.walk = function () {
            return this.distance / (this.user1.speed_1 + this.user2.speed_2);
        }

        var a2 = new App_1 (1000);
        var res_1 = a2.walk();
        console.log(res_1);

    </script>
</body>
</html>